package com.lhz.framework.security.manager;


/**
 * @author LiGezZ
 */
public interface SecurityManager<T> {

    /**
     * 获取登录用户信息
     *
     * @param tokenKey
     * @return
     */
    T getUserInfo(String tokenKey);


    /**
     * 剔除用户
     *
     * @param tokenKey
     * @return
     */
    void removeUser(String tokenKey);

    /**
     * 刷新用户登录过期时间
     *
     * @param tokenKey
     */
    void refreshExpiry(String tokenKey);

    /**
     * 检查token是否存在
     *
     * @param tokenKey
     * @return
     */
    boolean checkToken(String tokenKey);

    /**
     * 检查是否符合角色
     *
     * @param requireRole
     * @return
     */
    boolean checkRole(String tokenKey, String[] requireRole);

    /**
     * 检查是否拥有权限
     *
     * @param requireRights
     * @return
     */
    boolean checkRights(String tokenKey, String[] requireRights);
}
